package cn.wolfcode.rbac.service;

import cn.wolfcode.rbac.domain.Role;
import cn.wolfcode.rbac.qo.QueryObject;
import cn.wolfcode.rbac.web.vo.RolePermissionVo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Set;

public interface IRoleService {

    /**
     * 查询所有角色
     * @param qo
     * @return
     */
    PageInfo<Role> list(QueryObject qo);

    /**
     * 根据id删除角色
     * @param id
     * @return
     */
    void deleteRoleById(Long id);

    /**
     * 根据角色id查询角色
     * @param id
     * @return
     */
    Role get(Long id);

    /**
     * 根据员工id查询角色
     */
    List<Role> query(Long id);


    /**
     * 保存角色信息
     * @param rolePermissionVo  封装角色和权限的关系
     */
    void save(RolePermissionVo rolePermissionVo);

    /**
     * 更新角色信息
     * @param rolePermissionVo 封装角色和权限的关系
     */
    void update(RolePermissionVo rolePermissionVo);
}
